package com.ht.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ht.entity.DictModel;
import com.ht.modules.system.entity.SysDict;
import com.ht.modules.system.entity.SysDictItem;

import java.util.List;
import java.util.Map;

/**
 * 字典表 服务类
 */
public interface ISysDictService extends IService<SysDict> {

    List<DictModel> queryDictItemsByCode(String code);

    List<DictModel> queryTableDictItemsByCode(String table, String text, String code);

    String queryDictTextByKey(String code, String key);

    String queryTableDictTextByKey(String table, String text, String code, String key);

    /**
     * 根据字典类型删除关联表中其对应的数据
     */
    boolean deleteByDictId(SysDict sysDict);

    /**
     * 添加一对多
     */
    void saveMain(SysDict sysDict, List<SysDictItem> sysDictItemList);

    /**
     * 查询所有部门 作为字典信息 id -->value,departName -->text
     */
    List<DictModel> queryAllDepartBackDictModel();

    /**
     * 查询所有用户  作为字典信息 username -->value,realname -->text
     */
    List<DictModel> queryAllUserBackDictModel();

    /**
     * 通过关键字查询字典表
     */
    List<DictModel> queryTableDictItems(String table, String text, String code, String keyword);

    List<Map> getCommonList(String table, String columns, String whereSql, String joinSql);

    Map<String, List<DictModel>> queryManyDictByKeys(List<String> dictCodeList, List<String> values);

    List<DictModel> queryTableDictTextByKeys(String table, String text, String code, List<String> asList);

    List<String> generateDictionaryInfo(String dictIds);

    List<String> generateSql(String dictIds);
}
